// (1) 将数组的第一个位置设置为下边界（0）。
// (2) 将数组最后一个元素所在的位置设置为上边界（数组的长度减1）。
// (3) 若下边界等于或小于上边界，则做如下操作。
//      a. 将中点设置为（上边界加上下边界）除以2。
//      b. 如果中点的元素小于查询的值，则将下边界设置为中点元素所在下标加1。
//      c. 如果中点的元素大于查询的值，则将上边界设置为中点元素所在下标减1。
//      d. 否则中点元素即为要查找的数据，可以进行返回。
function binarySearch(arr, data) {
    let upperBound = arr.length - 1;
    let lowerBound = 0;
    while (lowerBound <= upperBound) {
        let middle = Math.floor((upperBound + lowerBound) / 2);
        if (arr[middle] < data) {
            lowerBound = middle + 1;
        }else if(arr(middle) > data) {
            upperBound = middle - 1;
        }else {
            return middle;
        }
    }
    return -1;
}